Ahora que .NET 6.0 está disponible, lo que parece ser una actualización radical de la plantilla de proyecto CLI predeterminada es la ausencia del modelo familiar que se reduce a lo siguiente:
// See https://aka.ms/new-console-template for more information Console.WriteLine("Hello, World!");Lo que no está claro (y he estado tratando de encontrar documentación hasta ahora, sin éxito) es ¿cómo se accede a los argumentos de la línea de comandos pasados a la clase de punto de entrada del ejecutable?
Puede acceder a los argumentos de la línea de comando desde cualquier parte de su código utilizando la clase Environment .
En particular, puede usar Environment.GetCommandLineArgs :
string name = Environment.GetCommandLineArgs()[1]; Console.WriteLine($"Hello, {name}!");Tenga en cuenta que el primer elemento de la matriz contiene la ruta del ejecutable y los argumentos pasados al programa comienzan con el segundo elemento, es decir, en el índice 1.
Las nuevas plantillas de proyectos utilizan la característica de C# 9 llamada declaraciones de nivel superior .
Para el archivo de declaraciones de nivel superior, el compilador generará el parámetro string[] args (en realidadgenera una clase completa que contiene el método Main ), por lo que puede usarlo (como se hizo anteriormente con Main(string[] args) ):
Console.WriteLine(args.Length);Puede encontrar más información sobre los patrones de generación en los documentos .